package br.elsa.survey.services;

import java.util.List;

import javax.ejb.Local;

import br.elsa.survey.dao.exceptions.DataNotFoundException;
import br.elsa.survey.domain.questions.Question;

/**
 * Service {@link Local} interface used by clients to invoke any business logic
 * process over {@link Question} domain concepts.
 * 
 * @author diego
 * @since 2010-09-25
 */
@Local
public interface QuestionService {


	/**
	 * Creates a new {@link Question} in the system.
	 * 
	 * @param question
	 */
	public void create(Question question);

	/**
	 * Removes a question from the system
	 * 
	 * @param question
	 *            the question to be removed
	 */
	public void remove(Question question);

	/**
	 * Gets all registered {@link Question} in the system
	 * 
	 * @return All registered {@link Question} in the system
	 * @throws DataNotFoundException
	 *             Thrown if no data is found
	 */
	public List<Question> getAllQuestions() throws DataNotFoundException;

}
